#ifndef __rda5807_H__
#define __rda5807_H__

#include "main.h"


#if 1
#define rda5807_debug(format, ...) my_debug("[rda5807]-",format,##__VA_ARGS__);
#else
#define rda5807_debug(format, ...) ;
#endif
//RDA 的寄存器地址
#define RDA_R00     0X00
//读出16个位的ID =0X5804
#define RDA_R02     0X02    //DHIZ[15],DMUTE[14]静音,MONO[13]声道,BASS[12]重低音,
//SEEKUP[9],SEEK[8],SKMODE[7],CLK_MODE[6:4]时钟源选择,SOFTRESET[1]软复位,ENABLE[0]电源使能
#define RDA_R03     0X03    //CHAN[15:6],TUNE[4],BAND[3:2],SPACE[1:0] 设置频率 带宽 步长
#define RDA_R04     0X04    //STCIEN[14],DE[11],I2Senable[6],
#define RDA_R05     0X05    //INT_MODE[15],SEEKTH[14:8](设定自动搜索信号强度阀值),LNA_PORT_SEL[7:6]=0b10,LNA_ICSEL_BIT[5:4],VOLUME[3:0]音量;
#define RDA_R0A     0X0A    //STC[14]seek complete SF[13]seek fail readchan[9:0]当前频道
#define RDA_R0B     0X0B    //RSSI[15:9],FM TRUE[8]当前频道是一个节目台
#define RDA_READ    0X23    //读RDA5807
#define RDA_WRITE   0X22    //写RDA5807

#define RDA5807_ADDR 0X22>>1

uint16_t rda5807_read_reg(uint8_t regAddr);
uint8_t rda5807_write_reg(uint8_t regAddr,uint16_t val);
void rda5807_vol_set(uint8_t vol);
void rda5807_mute_set(uint8_t mute);
uint8_t rda5807_rssi_get(void);
void rda5807_seekth_set(uint16_t rssi);
void rda5807_seek_direction(uint8_t direction);
uint16_t rda5807_seek_channel(void);
uint16_t rda5807_freg_get(void);
void rda5807_freq_set(uint16_t freq);
void rda5807_enable(uint8_t flag);
void rda5807_init(void);
void rda5807_seek_channel_no_block(void);
uint8_t rda5807_seek_wait(void);
uint8_t rda5807_freq_set_get_sta(void);

#endif
